// var i;
// var $bundleConfig = require("./BundleConfig");
// var $resKeeper = require("./ResKeeper");
// var $gameGlobalVariable = require("./GameGlobalVariable");
// var u = cc._decorator;
// var d = u.ccclass;
// var p = (u.property, u.inspector);
// var h = (function (e) {
//     function t() {
//         return (null !== e && e.apply(this, arguments)) || this;
//     }
//     __extends(t, e);
//     t.prototype.onLoad = function () {};
//     t.prototype.StartSet = function (e) {
//         var t = this;
//         if (e) {
//             this._loadRes(
//                 $bundleConfig.BundleNames.Game,
//                 "res/bg/" + $gameGlobalVariable.GameGlobalVariable.getSceneId(),
//                 cc.SpriteFrame
//             ).then(function (e) {
//                 t.node.getChildByName("node_cellFather").children.forEach(function (t) {
//                     t.getComponent(cc.Sprite).spriteFrame = e;
//                 });
//             });
//         }
//     };
//     return __decorate([d], t);
// })($resKeeper.default);
// exports.default = h;

// import {BundleNames} from "./BundleConfig";
// import ResKeeper from "./ResKeeper";
// import { GameGlobalVariable } from "./GameGlobalVariable";

// const { ccclass, property, inspector } = cc._decorator;

// /**
//  * 资源加载类
//  * 建议类名: ResourceLoader
//  */
// @ccclass
// class QiPaoTween extends ResKeeper {

//     /**
//      * 生命周期方法，加载时调用
//      * 建议方法名: onComponentLoad
//      */
//     onLoad(): void { }

//     /**
//      * 开始设置资源
//      * @param isLoad 是否加载资源
//      * 建议方法名: startResourceSetting
//      */
//     StartSet(isLoad: boolean): void {
//         if (isLoad) {
//             this._loadRes(
//                 BundleNames.Game,
//                 `res/bg/${GameGlobalVariable.getSceneId()}`,
//                 cc.SpriteFrame
//             ).then((spriteFrame: cc.SpriteFrame) => {
//                 this.node.getChildByName("node_cellFather").children.forEach((childNode: cc.Node) => {
//                     childNode.getComponent(cc.Sprite).spriteFrame = spriteFrame;
//                 });
//             });
//         }
//     }

//     /**
//      * 加载资源方法
//      * @param bundleName 资源包名称
//      * @param resourcePath 资源路径
//      * @param type 资源类型
//      * @returns Promise<cc.Asset>
//      * 建议方法名: loadResource
//      */
//     _loadRes(bundleName: string, resourcePath: string, type: typeof cc.Asset): Promise<cc.Asset> {
//         return new Promise((resolve, reject) => {
//             cc.assetManager.loadBundle(bundleName, (err, bundle) => {
//                 if (err) {
//                     reject(err);
//                     return;
//                 }
//                 bundle.load(resourcePath, type, (err, asset) => {
//                     if (err) {
//                         reject(err);
//                         return;
//                     }
//                     resolve(asset);
//                 });
//             });
//         });
//     }
// }

// export default QiPaoTween;

import { BundleNames } from "./BundleConfig";
import ResKeeper from "./ResKeeper";
import { GameGlobalVariable } from "./GameGlobalVariable";

const { ccclass, property, inspector } = cc._decorator;

/**
 * 资源加载类
 * 建议类名: ResourceLoader
 */
@ccclass
class BubbleTween extends ResKeeper {
    
    /**
     * 生命周期方法，加载时调用
     * 建议方法名: onComponentLoad
     */
    onLoad(): void { }

    /**
     * 开始设置资源
     * @param isLoad 是否加载资源
     * 建议方法名: startResourceSetting
     */
    startSet(isLoadResource: boolean): void {
        if (isLoadResource) {
            this._loadRes(
                BundleNames.Game,
                `res/bg/${GameGlobalVariable.getSceneId()}`,
                cc.SpriteFrame
            ).then((spriteFrameResource: cc.SpriteFrame) => {
                this.node.getChildByName("node_cellFather").children.forEach((childNodeElement: cc.Node) => {
                    childNodeElement.getComponent(cc.Sprite).spriteFrame = spriteFrameResource;
                });
            });
        }
    }

    /**
     * 加载资源方法
     * @param bundleName 资源包名称
     * @param resourcePath 资源路径
     * @param type 资源类型
     * @returns Promise<cc.Asset>
     * 建议方法名: loadResource
     */
    _loadRes(bundleName: string, resourcePath: string, resourceType: typeof cc.Asset): Promise<cc.Asset> {
        return new Promise((resolveResource, rejectResource) => {
            cc.assetManager.loadBundle(bundleName, (bundleError, bundle) => {
                if (bundleError) {
                    rejectResource(bundleError);
                    return;
                }
                bundle.load(resourcePath, resourceType, (loadError, resourceAsset) => {
                    if (loadError) {
                        rejectResource(loadError);
                        return;
                    }
                    resolveResource(resourceAsset);
                });
            });
        });
    }
}

export default BubbleTween;